package com.xiaoyushu.note.biz.service;

import com.xiaoyushu.framework.common.response.Response;
import com.xiaoyushu.note.biz.model.vo.*;

public interface NoteService {

    /**
     * 笔记发布
     *
     * @param publishNoteReqVO
     * @return
     */
    Response<?> publishNote(PublishNoteReqVo publishNoteReqVO);
    public Response<FindNoteDetailRspVO> findNoteDetail(FindNoteDetailReqVo findNoteDetailReqVO);


    /**
     * 笔记更新
     *
     * @param updateNoteReqVO
     * @return
     */
    Response<?> updateNote(UpdateNoteReqVO updateNoteReqVO);

/**
     * 删除笔记缓存
     *
     * @param noteId
     */
    void deleteNoteLocalCache(Long noteId);


    /**
     *删除笔记内容
     */
    Response<?> deleteNote(DeleteNoteReqVO delteNoteReqVO);

    Response<?> visibleOnlyMe(UpdateNoteVisibleOnlyMeReqVO updateNoteVisibleOnlyMeReqVO);

    /**
     * 笔记置顶/ 取消置顶
     * @param topNoteReqVO
     * @return
     */
    Response<?> topNote(TopNoteReqVO topNoteReqVO);

    /**
     * 点赞笔记
     * @param likeNoteReqVo
     * @return
     */
    Response<?> likeNote(LikeNoteReqVo likeNoteReqVo);

    /**
     * 取消点赞笔记
     * @param unlikeNoteReqVO
     * @return
     */
    Response<?> unlikeNote(UnlikeNoteReqVO unlikeNoteReqVO);

    /**
     * 收藏笔记
     * @param collectNoteReqVO
     * @return
     */
    Response<?> collectNote(CollectNoteReqVO collectNoteReqVO);

    /**
     * 取消收藏笔记
     * @param unCollectNoteReqVO
     * @return
     */
    Response<?> unCollectNote(UnCollectNoteReqVO unCollectNoteReqVO);

}
